<?php

namespace app\admin\controller;

/**
 * API 推流接口
 * 2017年5月31日 17:32:41
 * 
 */
class Live
{
  private $data = [];

  public function __auto(){

  }

   /**
     * post api/Live/getLiveUrl
     * API 主播端取得推流地址
     * 如果不传key和过期时间，将返回不含防盗链的url
     * @access public
     * @param bizId 您在腾讯云分配到的bizid
     *        streamId 您用来区别不通推流地址的唯一id
     *        key 安全密钥
     *        time 过期时间 sample 2017-5-31 18:00:21
     */
    public function  getLiveUrl($id = null){
        $uid      = isset($id) ? $id:uniqid();    // 传入UID
        $time     = date('Y-m-d H:i:s',strtotime('+1 day'));
        $key      = config('live.PUSH_URL_KEY');
        $bizId    = config('live.APP_BIZID');
        $streamId = "stream_".$uid;

        if($key && $time){
            $txTime   = strtoupper(base_convert(strtotime($time),10,16));
            $livecode = $bizId."_".$streamId; //直播码
            $txSecret = md5($key.$livecode.$txTime);
            $ext_str   = "?".http_build_query(array(
                          "bizid"=> $bizId,
                          "txSecret"=> $txSecret,
                          "txTime"=> $txTime
                      ));
        }

     
        $data['push_url'] = "rtmp://".$bizId.".livepush.myqcloud.com/live/".$livecode.(isset($ext_str) ? $ext_str : "");
        $data['stream_id'] = $streamId;  // 加密房间码
  
        return $data;
      }

    /**
    * post api/Live/changeStatus
    * API 主播开始推流，并收到开始推流事件（PUSH_EVT_PUSH_BEGIN）时，调用此接口，将该流状态置为上线；主播停止推流后，调用此接口，将该流状态置为下线
    * @access public
    * @param userid 用户id
    *        status 0:上线 1:下线
    * @return json
    */
    public function changeStatus(){

    }

		/**
    * post api/Live/getPlayUrl
    * API 观众端获取播放地址
    * @access public
    * @param bizId 您在腾讯云分配到的bizid
    *        streamId 您用来区别不通推流地址的唯一id
    * @return json
    */
		function getPlayUrl($streamId){
        
        $bizId    = config('live.APP_BIZID');
		    $livecode = $bizId."_".$streamId; //直播码
      
        $results    = array(
                    			      'play_url'      => "rtmp://".$bizId.".liveplay.myqcloud.com/live/".$livecode,
                    			      'play_url_flv'  =>  "http://".$bizId.".liveplay.myqcloud.com/live/".$livecode.".flv",
                    			      'play_url_m3u8' =>  "http://".$bizId.".liveplay.myqcloud.com/live/".$livecode.".m3u8"
                    			    );
       return $results['play_url'];
		}

    /**
     * post api/Live/stopLive
     * API 直播端主动结束直播
     * @access public
     * @param bizId 您在腾讯云分配到的bizid
     *        streamId 您用来区别不通推流地址的唯一id
     * @return json
     */
     public function stopLive(){

     }

     /**
      * post api/Live/getLiveUrl
      * API 从业务Server拉取列表，支持分页拉取
      * @access public
      * @param flag	int	1:拉取在线直播列表 2:拉取7天内点播列表 3:拉取在线直播和7天内点播列表，直播列表在前，点播列表在后
      *        pageno	int	分页号
      *        pagesize	int	每页大小
      * @return json
      */
     public function fetchList(){

     }


}
